//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.common;

import com.itheima.pinda.authority.enumeration.common.LogType;
import com.itheima.pinda.common.enums.HttpMethod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.time.LocalDateTime;

@ApiModel(
        value = "OptLogSaveDTO",
        description = "系统日志"
)
public class OptLogSaveDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("操作IP")
    @Length(
            max = 50,
            message = "操作IP长度不能超过50"
    )
    private String requestIp;
    @ApiModelProperty("日志类型")
    private LogType type;
    @ApiModelProperty("操作人")
    @Length(
            max = 50,
            message = "操作人长度不能超过50"
    )
    private String userName;
    @ApiModelProperty("操作描述")
    @Length(
            max = 255,
            message = "操作描述长度不能超过255"
    )
    private String description;
    @ApiModelProperty("类路径")
    @Length(
            max = 255,
            message = "类路径长度不能超过255"
    )
    private String classPath;
    @ApiModelProperty("请求类型")
    @Length(
            max = 50,
            message = "请求类型长度不能超过50"
    )
    private String actionMethod;
    @ApiModelProperty("请求地址")
    @Length(
            max = 50,
            message = "请求地址长度不能超过50"
    )
    private String requestUri;
    @ApiModelProperty("请求类型")
    private HttpMethod httpMethod;
    @ApiModelProperty("请求参数")
    @Length(
            max = 65535,
            message = "请求参数长度不能超过65,535"
    )
    private String params;
    @ApiModelProperty("返回值")
    @Length(
            max = 65535,
            message = "返回值长度不能超过65,535"
    )
    private String result;
    @ApiModelProperty("异常详情信息")
    @Length(
            max = 65535,
            message = "异常详情信息长度不能超过65,535"
    )
    private String exDesc;
    @ApiModelProperty("异常描述")
    @Length(
            max = 65535,
            message = "异常描述长度不能超过65,535"
    )
    private String exDetail;
    @ApiModelProperty("开始时间")
    private LocalDateTime startTime;
    @ApiModelProperty("完成时间")
    private LocalDateTime finishTime;
    @ApiModelProperty("消耗时间")
    private Long consumingTime;
    @ApiModelProperty("浏览器")
    @Length(
            max = 500,
            message = "浏览器长度不能超过500"
    )
    private String ua;

    public static OptLogSaveDTO.OptLogSaveDTOBuilder builder() {
        return new OptLogSaveDTO.OptLogSaveDTOBuilder();
    }

    public String getRequestIp() {
        return this.requestIp;
    }

    public LogType getType() {
        return this.type;
    }

    public String getUserName() {
        return this.userName;
    }

    public String getDescription() {
        return this.description;
    }

    public String getClassPath() {
        return this.classPath;
    }

    public String getActionMethod() {
        return this.actionMethod;
    }

    public String getRequestUri() {
        return this.requestUri;
    }

    public HttpMethod getHttpMethod() {
        return this.httpMethod;
    }

    public String getParams() {
        return this.params;
    }

    public String getResult() {
        return this.result;
    }

    public String getExDesc() {
        return this.exDesc;
    }

    public String getExDetail() {
        return this.exDetail;
    }

    public LocalDateTime getStartTime() {
        return this.startTime;
    }

    public LocalDateTime getFinishTime() {
        return this.finishTime;
    }

    public Long getConsumingTime() {
        return this.consumingTime;
    }

    public String getUa() {
        return this.ua;
    }

    public OptLogSaveDTO setRequestIp(final String requestIp) {
        this.requestIp = requestIp;
        return this;
    }

    public OptLogSaveDTO setType(final LogType type) {
        this.type = type;
        return this;
    }

    public OptLogSaveDTO setUserName(final String userName) {
        this.userName = userName;
        return this;
    }

    public OptLogSaveDTO setDescription(final String description) {
        this.description = description;
        return this;
    }

    public OptLogSaveDTO setClassPath(final String classPath) {
        this.classPath = classPath;
        return this;
    }

    public OptLogSaveDTO setActionMethod(final String actionMethod) {
        this.actionMethod = actionMethod;
        return this;
    }

    public OptLogSaveDTO setRequestUri(final String requestUri) {
        this.requestUri = requestUri;
        return this;
    }

    public OptLogSaveDTO setHttpMethod(final HttpMethod httpMethod) {
        this.httpMethod = httpMethod;
        return this;
    }

    public OptLogSaveDTO setParams(final String params) {
        this.params = params;
        return this;
    }

    public OptLogSaveDTO setResult(final String result) {
        this.result = result;
        return this;
    }

    public OptLogSaveDTO setExDesc(final String exDesc) {
        this.exDesc = exDesc;
        return this;
    }

    public OptLogSaveDTO setExDetail(final String exDetail) {
        this.exDetail = exDetail;
        return this;
    }

    public OptLogSaveDTO setStartTime(final LocalDateTime startTime) {
        this.startTime = startTime;
        return this;
    }

    public OptLogSaveDTO setFinishTime(final LocalDateTime finishTime) {
        this.finishTime = finishTime;
        return this;
    }

    public OptLogSaveDTO setConsumingTime(final Long consumingTime) {
        this.consumingTime = consumingTime;
        return this;
    }

    public OptLogSaveDTO setUa(final String ua) {
        this.ua = ua;
        return this;
    }

    public OptLogSaveDTO() {
    }

    public OptLogSaveDTO(final String requestIp, final LogType type, final String userName, final String description, final String classPath, final String actionMethod, final String requestUri, final HttpMethod httpMethod, final String params, final String result, final String exDesc, final String exDetail, final LocalDateTime startTime, final LocalDateTime finishTime, final Long consumingTime, final String ua) {
        this.requestIp = requestIp;
        this.type = type;
        this.userName = userName;
        this.description = description;
        this.classPath = classPath;
        this.actionMethod = actionMethod;
        this.requestUri = requestUri;
        this.httpMethod = httpMethod;
        this.params = params;
        this.result = result;
        this.exDesc = exDesc;
        this.exDetail = exDetail;
        this.startTime = startTime;
        this.finishTime = finishTime;
        this.consumingTime = consumingTime;
        this.ua = ua;
    }

    @Override
    public String toString() {
        return "OptLogSaveDTO(super=" + super.toString() + ", requestIp=" + this.getRequestIp() + ", type=" + this.getType() + ", userName=" + this.getUserName() + ", description=" + this.getDescription() + ", classPath=" + this.getClassPath() + ", actionMethod=" + this.getActionMethod() + ", requestUri=" + this.getRequestUri() + ", httpMethod=" + this.getHttpMethod() + ", params=" + this.getParams() + ", result=" + this.getResult() + ", exDesc=" + this.getExDesc() + ", exDetail=" + this.getExDetail() + ", startTime=" + this.getStartTime() + ", finishTime=" + this.getFinishTime() + ", consumingTime=" + this.getConsumingTime() + ", ua=" + this.getUa() + ")";
    }

    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof OptLogSaveDTO)) {
            return false;
        } else {
            OptLogSaveDTO other = (OptLogSaveDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label203: {
                    Object this$requestIp = this.getRequestIp();
                    Object other$requestIp = other.getRequestIp();
                    if (this$requestIp == null) {
                        if (other$requestIp == null) {
                            break label203;
                        }
                    } else if (this$requestIp.equals(other$requestIp)) {
                        break label203;
                    }

                    return false;
                }

                Object this$type = this.getType();
                Object other$type = other.getType();
                if (this$type == null) {
                    if (other$type != null) {
                        return false;
                    }
                } else if (!this$type.equals(other$type)) {
                    return false;
                }

                Object this$userName = this.getUserName();
                Object other$userName = other.getUserName();
                if (this$userName == null) {
                    if (other$userName != null) {
                        return false;
                    }
                } else if (!this$userName.equals(other$userName)) {
                    return false;
                }

                label182: {
                    Object this$description = this.getDescription();
                    Object other$description = other.getDescription();
                    if (this$description == null) {
                        if (other$description == null) {
                            break label182;
                        }
                    } else if (this$description.equals(other$description)) {
                        break label182;
                    }

                    return false;
                }

                label175: {
                    Object this$classPath = this.getClassPath();
                    Object other$classPath = other.getClassPath();
                    if (this$classPath == null) {
                        if (other$classPath == null) {
                            break label175;
                        }
                    } else if (this$classPath.equals(other$classPath)) {
                        break label175;
                    }

                    return false;
                }

                label168: {
                    Object this$actionMethod = this.getActionMethod();
                    Object other$actionMethod = other.getActionMethod();
                    if (this$actionMethod == null) {
                        if (other$actionMethod == null) {
                            break label168;
                        }
                    } else if (this$actionMethod.equals(other$actionMethod)) {
                        break label168;
                    }

                    return false;
                }

                Object this$requestUri = this.getRequestUri();
                Object other$requestUri = other.getRequestUri();
                if (this$requestUri == null) {
                    if (other$requestUri != null) {
                        return false;
                    }
                } else if (!this$requestUri.equals(other$requestUri)) {
                    return false;
                }

                label154: {
                    Object this$httpMethod = this.getHttpMethod();
                    Object other$httpMethod = other.getHttpMethod();
                    if (this$httpMethod == null) {
                        if (other$httpMethod == null) {
                            break label154;
                        }
                    } else if (this$httpMethod.equals(other$httpMethod)) {
                        break label154;
                    }

                    return false;
                }

                Object this$params = this.getParams();
                Object other$params = other.getParams();
                if (this$params == null) {
                    if (other$params != null) {
                        return false;
                    }
                } else if (!this$params.equals(other$params)) {
                    return false;
                }

                label140: {
                    Object this$result = this.getResult();
                    Object other$result = other.getResult();
                    if (this$result == null) {
                        if (other$result == null) {
                            break label140;
                        }
                    } else if (this$result.equals(other$result)) {
                        break label140;
                    }

                    return false;
                }

                Object this$exDesc = this.getExDesc();
                Object other$exDesc = other.getExDesc();
                if (this$exDesc == null) {
                    if (other$exDesc != null) {
                        return false;
                    }
                } else if (!this$exDesc.equals(other$exDesc)) {
                    return false;
                }

                Object this$exDetail = this.getExDetail();
                Object other$exDetail = other.getExDetail();
                if (this$exDetail == null) {
                    if (other$exDetail != null) {
                        return false;
                    }
                } else if (!this$exDetail.equals(other$exDetail)) {
                    return false;
                }

                label119: {
                    Object this$startTime = this.getStartTime();
                    Object other$startTime = other.getStartTime();
                    if (this$startTime == null) {
                        if (other$startTime == null) {
                            break label119;
                        }
                    } else if (this$startTime.equals(other$startTime)) {
                        break label119;
                    }

                    return false;
                }

                label112: {
                    Object this$finishTime = this.getFinishTime();
                    Object other$finishTime = other.getFinishTime();
                    if (this$finishTime == null) {
                        if (other$finishTime == null) {
                            break label112;
                        }
                    } else if (this$finishTime.equals(other$finishTime)) {
                        break label112;
                    }

                    return false;
                }

                Object this$consumingTime = this.getConsumingTime();
                Object other$consumingTime = other.getConsumingTime();
                if (this$consumingTime == null) {
                    if (other$consumingTime != null) {
                        return false;
                    }
                } else if (!this$consumingTime.equals(other$consumingTime)) {
                    return false;
                }

                Object this$ua = this.getUa();
                Object other$ua = other.getUa();
                if (this$ua == null) {
                    if (other$ua != null) {
                        return false;
                    }
                } else if (!this$ua.equals(other$ua)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof OptLogSaveDTO;
    }

    @Override
    public int hashCode() {
        /*int PRIME = true;*/
        int result = 1;
        Object $requestIp = this.getRequestIp();
        result = result * 59 + ($requestIp == null ? 43 : $requestIp.hashCode());
        Object $type = this.getType();
        result = result * 59 + ($type == null ? 43 : $type.hashCode());
        Object $userName = this.getUserName();
        result = result * 59 + ($userName == null ? 43 : $userName.hashCode());
        Object $description = this.getDescription();
        result = result * 59 + ($description == null ? 43 : $description.hashCode());
        Object $classPath = this.getClassPath();
        result = result * 59 + ($classPath == null ? 43 : $classPath.hashCode());
        Object $actionMethod = this.getActionMethod();
        result = result * 59 + ($actionMethod == null ? 43 : $actionMethod.hashCode());
        Object $requestUri = this.getRequestUri();
        result = result * 59 + ($requestUri == null ? 43 : $requestUri.hashCode());
        Object $httpMethod = this.getHttpMethod();
        result = result * 59 + ($httpMethod == null ? 43 : $httpMethod.hashCode());
        Object $params = this.getParams();
        result = result * 59 + ($params == null ? 43 : $params.hashCode());
        Object $result = this.getResult();
        result = result * 59 + ($result == null ? 43 : $result.hashCode());
        Object $exDesc = this.getExDesc();
        result = result * 59 + ($exDesc == null ? 43 : $exDesc.hashCode());
        Object $exDetail = this.getExDetail();
        result = result * 59 + ($exDetail == null ? 43 : $exDetail.hashCode());
        Object $startTime = this.getStartTime();
        result = result * 59 + ($startTime == null ? 43 : $startTime.hashCode());
        Object $finishTime = this.getFinishTime();
        result = result * 59 + ($finishTime == null ? 43 : $finishTime.hashCode());
        Object $consumingTime = this.getConsumingTime();
        result = result * 59 + ($consumingTime == null ? 43 : $consumingTime.hashCode());
        Object $ua = this.getUa();
        result = result * 59 + ($ua == null ? 43 : $ua.hashCode());
        return result;
    }

    public static class OptLogSaveDTOBuilder {
        private String requestIp;
        private LogType type;
        private String userName;
        private String description;
        private String classPath;
        private String actionMethod;
        private String requestUri;
        private HttpMethod httpMethod;
        private String params;
        private String result;
        private String exDesc;
        private String exDetail;
        private LocalDateTime startTime;
        private LocalDateTime finishTime;
        private Long consumingTime;
        private String ua;

        OptLogSaveDTOBuilder() {
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder requestIp(final String requestIp) {
            this.requestIp = requestIp;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder type(final LogType type) {
            this.type = type;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder userName(final String userName) {
            this.userName = userName;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder description(final String description) {
            this.description = description;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder classPath(final String classPath) {
            this.classPath = classPath;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder actionMethod(final String actionMethod) {
            this.actionMethod = actionMethod;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder requestUri(final String requestUri) {
            this.requestUri = requestUri;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder httpMethod(final HttpMethod httpMethod) {
            this.httpMethod = httpMethod;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder params(final String params) {
            this.params = params;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder result(final String result) {
            this.result = result;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder exDesc(final String exDesc) {
            this.exDesc = exDesc;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder exDetail(final String exDetail) {
            this.exDetail = exDetail;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder startTime(final LocalDateTime startTime) {
            this.startTime = startTime;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder finishTime(final LocalDateTime finishTime) {
            this.finishTime = finishTime;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder consumingTime(final Long consumingTime) {
            this.consumingTime = consumingTime;
            return this;
        }

        public OptLogSaveDTO.OptLogSaveDTOBuilder ua(final String ua) {
            this.ua = ua;
            return this;
        }

        public OptLogSaveDTO build() {
            return new OptLogSaveDTO(this.requestIp, this.type, this.userName, this.description, this.classPath, this.actionMethod, this.requestUri, this.httpMethod, this.params, this.result, this.exDesc, this.exDetail, this.startTime, this.finishTime, this.consumingTime, this.ua);
        }

        @Override
        public String toString() {
            return "OptLogSaveDTO.OptLogSaveDTOBuilder(requestIp=" + this.requestIp + ", type=" + this.type + ", userName=" + this.userName + ", description=" + this.description + ", classPath=" + this.classPath + ", actionMethod=" + this.actionMethod + ", requestUri=" + this.requestUri + ", httpMethod=" + this.httpMethod + ", params=" + this.params + ", result=" + this.result + ", exDesc=" + this.exDesc + ", exDetail=" + this.exDetail + ", startTime=" + this.startTime + ", finishTime=" + this.finishTime + ", consumingTime=" + this.consumingTime + ", ua=" + this.ua + ")";
        }
    }
}
